This invention relates to emulation in data processing systems; and more particularly, it relates to a novel block mode-character mode converter program which enables UNIX application programs, that operate interactively with character mode input/output terminals, to be run efficiently and without modification from incompatible block mode input/output terminal.
In the prior art, thousands of UNIX application programs exist which are designed to operate in an highly interactive fashion with an operator of a character mode input/output terminal. Some examples of these interactive UNIX application programs are accounting programs for businesses, scientific programs for engineers, etc.; and, some examples of the character mode terminals are a VT100, VT220, and a UVT1224.
Each such character mode terminal includes a keyboard and a visual display screen; and, when any one key on the keyboard is pushed by an operator, a character signal representing the pushed key is sent immediately to the UNIX application program. Then, the UNIX application program immediately examines the character which it receives. Based on what the received character is, the UNIX application program either simply resends that character back to the character mode terminal for display on its screen, or the UNIX application program performs some internal operation and indicates the result by sending other characters to the character mode terminal for display on its screen. Thus, the UNIX application program operates in a highly interactive fashion with the character mode terminal since, as each key is pushed the program senses the key and takes some action.
By comparison, the prior art also includes block mode input/output terminals. These terminals, like the character mode terminals, also have a keyboard and a visual display; however, the block mode terminals operate in a totally different fashion than the character mode terminals. Some examples of block mode terminals are an IBM 3270, UNISCOPE, and POLL SELECT.
Typically, several block mode terminals are interconnected to a computer on a time-shared data communications network, such as the IBM SNA network. In operation, each terminal sends a message on the network only when an operator presses a certain TRANSMIT key, or its equivalent, on the terminal's keyboard. Before pushing the TRANSMIT key, the operator of the block mode terminal usually presses many data character keys and cursor control keys on the keyboard, and the terminal itself will display and edit the data characters without sending any message on the network. Then, when the transmit key is pressed, the entire display is sent as a block of characters on the network.
Suppose now that the operator of the block mode terminal desires to run one of the prior art UNIX application programs. That program cannot simply be loaded into the computer on the network and run from the block mode terminal since the UNIX application program is written to interact with each key as it is pushed on a character mode terminal. Also, the UNIX application program cannot be easily modified to run directly with the character mode terminal since the entire program is built around sensing and responding to every keystroke by the operator. Further, various control keys on the block mode terminal (e.g.--TRANSMIT) don't even exist on the character mode terminal; and vice-versa.
Also, another critical factor which needs to be addressed in solving the above problem is the amount of data transmission that is generated on the network when the UNIX program interacts with the character mode terminal. If, for example, an entire screen of characters were somehow sent over the network to the UNIX program each time a data character key was pushed, the network data transmissions would be too inefficient to be practical.
Accordingly, a primary object of the invention is to provide a novel block mode-character mode converter program, whereby UNIX application programs for character mode terminals can be run efficiently and without modification by a block mode terminal on a network.